ContactX
Contacts book searcher


PURPOSE
ContactX allows for using multiple contacts databases, and provides one-step
searching through these files while creating extracts and maintaining backups.

SETUP
ContactX runs under Macro5,  Pascal Nicolas.
Install SYSTINFO.SIS and CNTOPX.SIS, and copy ContactC.opo to the Macros
folder. Create one or more new contacts files, e.g. by converting data type
files to contacts (using DataContact,  Pascal Nicolas), and place these
files in a folder on C or D disk. This will be the search folder. If you
don't have any new files then copy the supplied "Developers.cdb" for
demonstration.
On first run the program will prompt you to indicate the search folder. The
existing Contacts database will be saved to this folder as "My contacts.cdb";
if a file with this name already exists it will be replaced.
Optionally check the 'Keep backups' box, hit OK and select a folder for
storage of backup files (this can be the same as the search folder).
A directory C:\System\Apps\ContactX\ will be created, including a
ContactX.ini file. This concludes the initialisation.

USAGE
On running ContactX a text entry box is presented. If you wish to change data
search folder or backup folder press Files (Ctrl+F). Enter any text referring
to first name, last name or company name and hit OK, or alternatively enter a
text string and choose Ctrl+A for search in all fields.
If matching contacts are found in only one database, this database is copied
to Contacts and the search result is presented. If a match appears in more
than one file, you will be prompted to select the preferred database. Hit Esc
to search again.
A search with no entry text allows to select any .cdb file in the search
folder, or to update in case there is only one file.
The Contacts database, if exchanged and if modified, will be stored to the
data search folder under its representative name, replacing the earlier
version or moving it to the backup folder if opted. Please note that backups
may be overwritten by files with identical names from different source
folders.
In the file selector dialog, choose Ctrl+R to restore earlier versions of the
selected database. If there are backups you get more restore options.
If ContactX quits while the message "Contacts store in use" is displayed,
then not all applications (clients) calling upon the Contacts database were
closed within reasonable time. If this persists on rerunning ContactX, then
manually detach (close) the clients that are still open. Common clients
besides Contacts are the applications Email, Phone (Revo) and PhoneMan
(Zenobyte Ltd).
The 'All text' search function is different from the option in Contacts, and
more powerful. Besides scanning name fields as in the normal search function,
it checks the combined presence of text strings in all fields and searches
through the loaded database. Use it if you have scattered information on the
aimed contact, entering * to separate text that may appear in different
fields (such as "john*london*@").

CONTACTS FILE EXPORT
As of version 2.90, ContactX features the option to export matching contacts
to a new contacts file. This allows to:
 view only the matching contacts in the Contacts window, which often is
impossible whithin the existing file(s);
 import a list of selected contacts into other applications like Word, Data
or spreadsheets (via Malcolm Bryant's freeware "C2F" program).
The export feature is always invoked by choosing the 'All text' option, if a
search string is entered which contains an * preceded by text (such as
"John*London" or "John*"). The new contacts file will be written to the
search folder, where it will be available for further manipulation just like
the existing files.

HISTORY
Version	Bytes	Date	Modifications
5.50	17012	10 oct 2001		procedure names changed	uses ContactX.in1 if
present for search input
5.00	16785	25 aug 2001		final	loads book if Contacts store not found on C
or D	closing Contacts store updated for PhoneMan
4.00	16489	22 jun 2001		full support of switching to other disk	enhanced
routine for closing Contacts store	recovers temporary file after program
abortion	file recognition no longer case sensitive
3.95	14870	15 may 2001		enhanced file saving
3.90	14864	21 apr 2001		restore algorithm modified
3.85	14877	14 apr 2001		fixed restoring after re-installing backup folder
3.75	14824	26 feb 2001		fixed minor bugs on System\Temp folders
3.65	14792	18 jan 2001		searching not skipped after changing folders
3.60	14798	15 jan 2001		credit line removed from 'About'	detects read-only
contacts files
3.55	14496	06 jan 2001		recent flaw on 'All text' search fixed
3.50	14512	08 nov 2000		final amendments
3.45	14444	01 nov 2000		name search with * allowed
3.40	14370	29 oct 2000		bug with single book fixed
3.35	14370	20 oct 2000		allows contacts files in System folder if
visible	all contacts files on C or D disk enabled
3.25	12941	01 jul 2000		code synchronised with ContactC 1.00
				skips searching on identical search request
3.20	12786	08 apr 2000		restore messaging completed
3.15	12781	15 mar 2000		language independent on 5mx and Revo
3.05	12691	05 mar 2000		closes & reopens common Contacts clients
				tested OK on the UK Revo
3.00	12300	01 mar 2000		single book handling upgraded
				restores source folder if not found
2.90	12145	18 feb 2000		matching contacts exported to new database
				general control and protection enhancements
				unique match searching in loaded Contacts.cdb
				clipboard not affected if no search text
2.80	7203	20 jan 2000		'About' added
				backup control added
				all text search refined
2.65	6848	18 dec 1999		fully language independent
2.62	6773	03 dec 1999		book selector width restrained
2.52	6773	30 oct 1999		unique match forwarding in all text search
2.50	6510	23 oct 1999		multiple field search added in all text search
2.42	6261	21 oct 1999		long names allowed
				proper comma handling in book selector
				tabs treated as spaces in name search
2.40	5948	11 oct 1999		code synchronised with ContactW 1.20
				book selector changed
				search string ends up in clipboard
				boosted search for single words
2.30	6073	07 oct 1999		Contacts.cdb on D disk enabled
2.20	5989	04 oct 1999		fixed flaw in search routine
2.10	5936	02 oct 1999		name search algorithm upgraded
				initiation facilitated
				not released
2.00	5049	30 sep 1999		searches for text within contacts databases
				manages/compresses contacts files
				optionally maintains/restores backups
				not released
1.10	1731	22 sep 1999		code refined; no operational changes
				not released
1.00	1698	10 sep 1999		first public release
				added 'about' and directions at initial startup
1.00b1	1475	03 sep 1999		first beta release

COPYRIGHT
All rights reserved by the author.

DISCLAIMER
The author waives responsibility for any adverse consequence of using this
program;
running it is allowed under the condition that the user accepts the full risk
of use.

CREDITS
To Pascal Nicolas for Macro5, to Richard Smedley for SafeOPL, to Joachim
Maier for support with the German 5mx and to Julian Brooks for support with
the UK Revo.

KNOWN ISSUES
ContactX was written on the UK 5mx, and tested on the UK and German 5mx and
UK Revo.
All known issues originate from the Contact.opx library, version 1.00. It is
yet unknown when EPOC will have the opx debugged.
 The contents of the "Job title" field are ignored in searches.
 When exporting, fields in contacts that were imported from other vCard
applications may not be recognised. These will be passed as " failed ",
where the  has character code 150. Known failures involve address fields,
following synchronisation with MS Outlook and MS Schedule. Set the sync path
to a fixed database in the search folder to avoid accidental mixing with
other contacts that may be momentarily loaded.
 Per contact, no more than two fields with contents larger than 255
characters can be written to a new contacts file; the remaining will be
passed as " failed ".
 The "PO box" fields are not copied to the new contacts file.

FEEDBACK
Please mail your findings to:		Frans Franken
				ContactX@franken.demon.nl
Latest version and more at:		http://www.franken.demon.nl
